Amazon EC2でRancherOSを触ってみた
はじめに
Docker Blogで興味深い記事がアップされました。
Dockerコンテナを動かすためのミニマムなOSとしては、CoreOS、Snappy Ubuntu Core、Project Atomicなどがありました。そしてこのBlog記事では、2週間以内に新たなtiny Docker OSであるRancherOSがリリースされると紹介されています。RancherOSの特徴は以下の通り。
- 超ミニマム。RancherOSのISOバイナリは20MBしか無い(Mac OS XのFinder上だと21MBと表示されてしまいました)
- OS自体がDocker上で動く。RancherOSではPID 1でsysvinitやsystemdでは無くSystem Dockerが動き、その上に各サブシステムが動きます。RancherOSのgithubに置かれた画像がわかりやすいです。
詳しくはRancherのBlogに記事があります。
すでにAWS上にはRancherOSのAMIが置かれています。ということで、早速触ってみました!
やってみた
今回は東京リージョンで使っています。以下のようにAMIが用意されていますので、こちらでEC2をLaunchします。
ログインはSSHで行います。ユーザーは"rancher"です。
$ ssh -i ./.ssh/mykey.pem -l rancher 54.199.XXX.XXX [rancher@rancher ~]$
psコマンドで確認すると、確かにPID 1でDocker(System Docker)が動いています。PID 343がUser Dockerですね。
[rancher@rancher ~]$ ps aux PID USER COMMAND 1 root docker -d -s overlay -b none --restart=false -H unix:///var/run/system-docker.sock 343 root docker -d -s overlay --tlsverify --tlscacert=/etc/docker/tls/ca.pem --tlscert=/etc/docker/tl
System Dockerはsystem-dockerコマンドで操作します。試しにpsを実行してみると、以下のように、syslogやntpもSystem Docker上のコンテナとして動作していることがわかります。これは面白い。OS自体がコンテナというブロックを組み合わせているようですね。
[rancher@rancher ~]$ sudo system-docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES d518d2fa217f console:latest "/usr/sbin/console.s 7 minutes ago Up 7 minutes console 3b7cf0e02edd userdocker:latest "/docker.sh" 7 minutes ago Up 7 minutes userdocker 24836eee115a syslog:latest "/syslog.sh" 7 minutes ago Up 7 minutes syslog 1fbd388671b0 ntp:latest "/ntp.sh" 7 minutes ago Up 7 minutes ntp
User Dockerも実行してみましょう。
[rancher@rancher ~]$ docker run busybox echo "Hello RancherOS" Hello RancherOS [rancher@rancher ~]$ docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 217d552d06e3 busybox:latest "echo 'Hello Rancher 8 seconds ago Exited (0) 8 seconds ago evil_swartz
うん、普通のDockerですね!
さいごに
何もかもDocker上で動くOS、というコンセプトはとても面白いなと思います。Docker Machineとして、あるいはAmazon EC2 Container Serviceのクラスタインスタンスとして、活用が進むかもしれませんね。要チェックです!